package com.sunda.spmsoversea.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sunda.spmscommon.ResponseResult;
import com.sunda.spmsoversea.dto.OverseaWhsOutDTO;
import com.sunda.spmsoversea.dto.OverseaWhsOutGenerateDTO;
import com.sunda.spmsoversea.dto.OverseaWhsOutQueryDTO;
import com.sunda.spmsoversea.entity.OverseaWhsOut;

/**
 * <p>
 * 海外出库任务表 服务类
 * </p>
 *
 * @author Wayne
 * @since 2021-09-22
 */
public interface IOverseaWhsOutService extends IService<OverseaWhsOut> {

    /** 根据领用申请uuid初始化出库任务 */
    ResponseResult generateOverseaWhsOut(OverseaWhsOutGenerateDTO overseaWhsOutGenerateDTO, String userId);

    /** 根据海外出库任务uuid获取任务表头及明细 */
    ResponseResult getWhsOutAndDtl(String uuidWhsOut);

    /** 根据传入参数获取出库任务表头列表分页数据 */
    IPage getWhsOutPage(OverseaWhsOutQueryDTO overseaWhsOutQueryDTO);

    /** 出库任务关闭：1-0； */
    ResponseResult closeWhsOut(String uuidWhsOut, Integer dataVersion, String userId);

    /** 更新出库任务及明细：1-1；1-2(扣库存)； */
    ResponseResult updateWhsOut(OverseaWhsOutDTO overseaWhsOutDTO, String userId);

    /** 出库任务提交SAP：2-3；2-4；4-3；4-4； */
    ResponseResult toSapWhsOut(String uuidWhsOut, Integer dataVersion, String postingDate, String userId);

    /** 出库任务撤销/退回操作：3-2；2-1(加库存)；4-1(加库存)； */
    ResponseResult cancelWhsOut(String uuidWhsOut, Integer dataVersion, String cancelPostingDate, String userId);
}
